module Demo
{
	interface Hello
	{
		nonmutating void sayHello();
	};

	interface Session
	{
		Hello* create();
		nonmutating string getName();
		void destroy();
		idempotent void refresh();
	};
	
	interface SessionFactory
	{
		Session* create(string name);
		idempotent void shutdown();
	};
};